package com.feign.config;

import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import static java.util.concurrent.TimeUnit.SECONDS;

/**
 * @ClassName: FeignConfig
 * @Author: ZhangYue26
 * @Description: FeignClient配置
 * @Date: 2021-01-12
 */
@Configuration
public class FeignConfig {

    @Bean
    public Retryer feignRetryer() {
        /**
         *      覆盖掉默认Feign配置FeignClientsConfiguration请求失败后中默认重试0次，不重试。
         *      下面是重新注入Retryer Bean 将重试间隔为100ms 最大重试时间为1s 重试次数为5次
         * */
        return new Retryer.Default(100, SECONDS.toMillis(1), 5);
    }

}
